import axios from 'axios';
import cheerio from 'cheerio';
import cryptojs from 'crypto-js';
import dayjs from 'dayjs';
import bigInt from 'big-integer';
import he from 'he';
import qs from 'qs';

// TODO: 你可以在这里写插件的逻辑

// 注意：不要使用async () => {}，hermes不支持异步箭头函数
const search: IPlugin.ISearchFunc = async function (query, page, type) {
  // 存储搜索结果 
  const searchResults = [];
  if (type === "music") {
    // 我们能搜索的只有音乐，因此判断下类型
    // 获取网站的html
    const rawHtml = (
      await axios.get("https://freesound.org/search", {
        params: {
          q: query,
          page,
        }
      })
    ).data;

    // 接下来解析html 
    const $ = cheerio.load(rawHtml);

    // 获取所有的结果
    const resultElements = $('.bw-search__result');
    // 解析每一个结果
    resultElements.each((index, element) => {
      const playerElement = $(element).find('.bw-player');
      // id
      const id = playerElement.data('sound-id');
      // 音频名
      const title = playerElement.data('title');
      // 作者
      const artist = $(element).find('.col-12.col-lg-12.middle a').text();
      // 专辑封面
      const artwork = playerElement.data('waveform');
      // 音源
      const url = playerElement.data('mp3');
      // 专辑名，这里就随便写个了，不写也没事
      const album = '来自FreeSound的音频';

      searchResults.push({
        // 一定要有一个 id 字段
        id,
        title,
        artist,
        artwork,
        album,
        url
      })
    });

  }
  return {
    isEnd: true,
    data: searchResults
  }
}


const pluginInstance: IPlugin.IPluginDefine = {
  platform: "FreeSound",
  version: "0.0.0",
  // TODO: 在这里把插件剩余的功能补充完整
  search
};

export default pluginInstance;

